var prefix = "/jzweb/msg";
let columns = []
//管理员
let dates = [
    {
        field: 'name',
        title: '资源名称',
        width: '500px',
        formatter: function (value, row, index) {
            let list = `
              <div style="display:flex;padding: 15px 15px">
                    <div style="border: 5px solid #cccccc;max-width: 30%;border: 1px solid #cccccc">
                        <img src="${row.introducePortrait}" style="border: 5px solid #cccccc;max-width: 100%;height: auto;"/>
                    </div>
                  <div class="table-title" >
                    <h4 class="textOverflow" title="${row.name ?? ''}" style="font-weight: bold;width: 290px;">${row.name ?? ''}</h4>
                    <p class="textOverflow" title="${row.couIntroduce ?? ''}" style="width: 235px;">${row.couIntroduce ?? ''}</p>
                  </div>
              </div>
            `
            return list ;
        }
    },
    {
        field: 'chapterNum',
        title: '资源数量',
        formatter: function (value, row, index) {
            let e = `<a class="btn-color" href="#" mce_href="#" title="编辑" onclick="resourceQuantity('${row.id}')">${value ?? 0}</a>`;
            return e ;
        }
    },
    {
        field: 'createrName',
        title: '创建人'
    },
    {
        field: 'createrDate',
        title: '上传时间'
    },
    {
        field: 'state',
        title: '资源状态',
        formatter: function (value, row, index) {
            let e = ''
            if(value === '0') {
                e = `<span>展示</span>`
            }else if(value === '1') {
                e = `<span>不展示</span>`
            }
            return e ;
        }
    },
    {
        title: '操作',
        field: 'userName',
        formatter: function (value, row, index) {
            let k = `<a class="btn-color" href="#" mce_href="#" title="查看章节" onclick="resourceQuantity('${row.id}')">查看章节</a>`;
            let d = `<a class="btn-color" href="#" title="详情"  mce_href="#" onclick="remove('${row.id}')">详情</a>`;
            let a = `<a class="btn-color" href="#" title="删除"  mce_href="#" onclick="deletes('${row.id}')">删除</a>`;
            let f = `<a class="btn-color" href="#" title="还原"  mce_href="#" onclick="downloads('${(row.id)}')">还原</a>`;
            return  k + d + a + f ;
        }
    }
]

$(function () {
    load();
});



function load() {
    $('#exampleTable')
        .bootstrapTable(
            {
                method: 'POST', // 服务器数据的请求方式 get or post
                url: "/courses/getCourseList", // 服务器数据的加载地址
                iconSize: 'outline',
                toolbar: '#exampleToolbar',
                striped: true, // 设置为true会有隔行变色效果
                dataType: "json", // 服务器返回的数据类型
                pagination: true, // 设置为true会在底部显示分页条
                singleSelect: false, // 设置为true将禁止多选
                contentType: 'application/json', // 将content-type设置为application/json
                // //发送到服务器的数据编码类型
                pageSize: 10, // 如果设置了分页，每页数据条数
                pageNumber: 1, // 如果设置了分布，首页页码
                //search : true, // 是否显示搜索框
                showColumns: false, // 是否显示内容下拉框（选择显示的列）
                sidePagination: "server", // 设置在哪里进行分页，可选值为"client" 或者 "server"
                queryParamsType: "",
                // //设置为limit则会发送符合RESTFull格式的参数
                queryParams: function (params) {
                    let userid = localStorage.getItem('userId')
                    return JSON.stringify({
                        //说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
                        current: params.pageNumber,
                        size: params.pageSize,
                        name:$('#name').val(),
                        isDeleted:1,
                        newType: $('#type').val(),
                        createrId: $('#authority').val() === '教师' ? userid : '',
                        publicity:$('#authority').val() === '管理员' ? 0 : ''
                    })
                },
                responseHandler: function (res) {
                    if(res.code !== '0') {
                        return {
                            "total": 0,//总数
                            "rows": []   //数据
                        };
                    }
                    return {
                        "total": res.data.total,//总数
                        "rows": res.data.records//数据
                    };
                },
                columns: dates
            });
}

function reLoad() {
    $('#exampleTable').bootstrapTable('refresh');
}


/**
 * 新增资源
 * type 区分精品资源，自建资源
 * */
function addResource() {
    let type = $('#type').val()
    layer.open({
        type: 2,
        title: '新增精品课程资源管理',
        maxmin: true,
        shadeClose: false, // 点击遮罩关闭层
        area: ['1200px', '750px'],
        content:  `/courses/add?type=${type}`// iframe的url
    });
}

// 删除
function deletes(id) {
    layer.confirm('确定要删除当前资源？', {
        btn: ['确定', '取消']
    },async function () {
        let data = await tableList(id)
        if(data.code ==='0') {
            layer.msg('删除成功');
        }else {
            layer.msg('删除失败');
        }
        reLoad()
    })
}

// 跳转章节
function resourceQuantity(id = "1") {
    let index = layer.open({
        type: 2,
        title: '章节',
        maxmin: true,
        shadeClose: false, // 点击遮罩关闭层
        area: ['1200px', '750px'],
        content:  `/chapter/chapterResource?id=${id}&state=${1}`// iframe的url
    });
    layer.full(index);
}

/**
 * id = 资源id
 * state = 1 详情功能
 * */
function remove(id) {
    layer.open({
        type: 2,
        title: '详情',
        maxmin: true,
        shadeClose: false, // 点击遮罩关闭层
        area: ['1200px', '750px'],
        content:  `/courses/update?id=${id}&state=1`// iframe的url
    });
}


//还原
function downloads(id) {
    let index = layer.confirm('确定要还原当前资源吗？', {
        btn: ['确定', '取消']
    },async function () {
        await downloadCreate({id:id, isDeleted: 0,state:1},index)
        reLoad()
    })

}

//物理删除
function tableList(id) {
    return new Promise(function (resolve, reject) {
        $.ajax({
            type: 'get',
            url: `/courses/deletedById?id=${id}`,
            success: function(data) {
                if(data.code === '0') {
                    resolve(data)
                    return
                }
                layer.msg(data.msg);

            },
            error: function(xhr, textStatus, error) {
                layer.msg('请求失败');
                reject(error)
            }
        });
    })

}


// 还原
function downloadCreate(data,index) {
    return new Promise(function (resolve, reject) {
        $.ajax({
            type: 'POST',
            url: '/courses/update',
            contentType: 'application/json', // 将content-type设置为application/json
            data: JSON.stringify(data),
            dataType: 'json',
            success: function(data) {
                if(data.code === '0') {
                    resolve(data)
                    layer.msg('还原成功');
                    layer.close(index);
                    return
                }
                layer.msg(data.msg);
                layer.close(index);

            },
            error: function(xhr, textStatus, error) {
                layer.msg('请求失败');
                layer.close(index);
                reject(error)
            }
        });
    })

}